/**
 * Created by yu on 16/9/5.
 * 用流实现copy方法
 */
/**
 * 拷贝文件内容方法
 * @param 原路径
 * @param 目标路径
 */
var fs = require('fs');
function copy2(src,target){
    var rs = fs.createReadStream(src);//可读流
    var ws = fs.createWriteStream(target);//可写流
    rs.pipe(ws);//通过管道从可读流中读取,然后写入可写流.
    // 写的慢就读的慢,写的快就读的快.
}
copy2('./index.txt','./write.txt');

/**
 *pipe实现原理
 */

function pipe(source,dest){
    source.on('data',function(data){
        if(false=== dest.write(data){//可写流写入失败了,慢点儿读
            source.pause();//可读流先暂停读取
        })
    })
    dest.on('drain',function(){//drain监听抽干方法,即已经写完了.则重新开始读取
        source.resume();//恢复读取
    })
}